package com.spring.authManage.service;

import java.util.List;

import com.spring.authManage.pojo.ResourceInfo;
import com.spring.authManage.pojo.RoleInfo;
import com.spring.authManage.pojo.RoleInfoParam;
/**
 * 角色服务类
 * @author sunchengtao
 * @purpose
 */
public interface RoleInfoService {
	
	/**
	 * 根据查询条件获取角色信息 不分页
	 * @param param
	 * @return
	 */
	public List<RoleInfo> queryAllRoleInfoByParam(RoleInfoParam roleInfoParam) throws Exception;
	/**
	 * 添加角色
	 * @param info
	 */
	public void addRoleInfo(RoleInfo roleInfo) throws Exception;
	/**
	 * 根据角色ID获取角色信息
	 * @param roleId
	 */
	public RoleInfo getRoleInfoById(String roleId) throws Exception;
	/**
	 * 更新角色信息
	 * @param info
	 */
	public void updateRoleInfo(RoleInfo roleInfo) throws Exception;
	/**
	 * 根据条件查询角色信息
	 * @param param
	 * @return
	 */
	public RoleInfo queryRoles(RoleInfo roleInfo) throws Exception;
	/**
	 * 更新角色权限分配
	 * @param roleId
	 * @param resourceIds
	 */
	public void udpateRoleResource(RoleInfo roleInfo) throws Exception;
	/**
	 * 根据权限名称获取拥有该权限的所有角色信息
	 * @param resourceName
	 * @return
	 */
	public List<RoleInfo> getRoleInfosByResourceName(String resourceName) throws Exception;
	/**
	 * 删除角色
	 * @param roleId
	 */
	public void deleteRoleById(String roleId) throws Exception;
	/**
	 * 重启删除角色
	 * @param roleId
	 */
	public void restartRoleById(String roleId) throws Exception;
	/**
	 * 根据用户ID 获取该用户所有角色 
	 * @param userId
	 * @return
	 */
	public List<RoleInfo> getRoleInfosByUser(String userId) throws Exception;
	/**
	 * 是否存在角色
	 * @param roleInfo
	 * @return
	 */
	public Integer isExistRole(RoleInfo roleInfo) throws Exception;
	/**
	 * 获取角色权限
	 * 
	 * @param request
	 * @param response
	 * @param roleId
	 */
	public List<RoleInfo> getRoleResource(String id) throws Exception;
	
}
